package com.zhang.system.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.zhang.common.oss.minio.FileInfoVo;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * <p>
 * 权限菜单表
 * </p>
 *
 * @author 创世神
 * @since 2023-07-06
 */
@TableName("sys_menu")
@Data
public class Menu implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(type = IdType.AUTO)
    private Long id;
    private String name;
    /**
     * 菜单编码,用于后端权限控制
     */
    private String menuCode;
    /**
     * 菜单父节点ID，方便递归遍历菜单
     */
    private Long parentId;
    /**
     * 节点类型，可以是文件夹1、页面2或者按钮类型3
     */
    private Integer nodeType;
    @OrderBy(asc = true)
    private Integer sort;
    /**
     * 页面对应的地址，如果是文件夹或者按钮类型，可以为空
     */
    private String linkUrl;
    /**
     * 图标标识
     */
    private String iconId;
    /**
     * 菜单树的层次，以便于查询指定层级的菜单
     */
    private Integer level;
    /**
     * 树id的路径，主要用于存放从根节点到当前树的父节点的路径，逗号分隔，想要找父节点会特别快
     */
    private String path;
    private String createTime;

    /**
     *tabs是否可以被关闭,0不能被关闭，1可以
     */
    private Integer isClose;
    /*vo相关*/
    @TableField(exist = false)
    private List<Menu> children;//子菜单

}
